/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.gob.pnp.despachadores;

import java.sql.*;
import java.util.*;
import oracle.jdbc.*;
import pe.gob.pnp.actions.*;
import pe.gob.pnp.factories.*;

/**
 *
 * @author Eduardo Cavero Guzmán
 * @date 16/07/2010
 */
public class AccionesTramiteDespachador {
    public static List<AccionTramite> obtenerAccionesTramite() throws SQLException {
        List<AccionTramite> lstAcciones = new ArrayList<AccionTramite>();
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "{call SP_OBTENER_ACCIONES_TRAMITE(?)}";
            CallableStatement cs = conn.prepareCall(sql);
            cs.registerOutParameter(1, OracleTypes.CURSOR);
            cs.execute();
            ResultSet rs = (ResultSet) cs.getObject(1);
            while(rs.next()) {
                AccionTramite accion = new AccionTramite();
                accion.setNactrIdentificador(rs.getInt("NACTR_IDENTIFICADOR"));
                accion.setNactrCodigo(rs.getInt("NACTR_CODIGO"));
                accion.setCactrDescripcion(rs.getString("CACTR_DESCRIPCION"));
                lstAcciones.add(accion);
            }
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return lstAcciones;
    }

    public static void agregarAccionTramite(AccionTramite accion) throws SQLException {
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "INSERT INTO SISDE_TRAMITEACCION(NTRAC_IDENTIFICADOR,";
            sql += "NTRAM_IDENTIFICADOR,NACTR_IDENTIFICADOR,BTRAC_ELIMINADO,";
            sql += "DTRAC_FECHACREACION) ";
            sql += "VALUES(SEQ_TRAMITEACCION.NEXTVAL,?,?,0,SYSDATE)";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setInt(1, accion.getNtramIdentificador());
            ps.setInt(2, accion.getNactrIdentificador());
            ps.executeUpdate();
            //Llamar Insertar TramiteAccionSIGE
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
    }

}
